package top.ochiamalu.aioj.util;

import org.springframework.util.DigestUtils;

/**
 * 电子邮件工具类
 *
 * @author ochiamalu
 * @date 2025/04/07
 */
public class EmailUtils {

    /**
     * 盐值，混淆密码
     */
    private static final String SALT = "ochiamalu";

    /**
     * 生成验证token
     * 使用用户ID、邮箱和时间戳生成一个唯一的token
     */
    public static String generateVerificationToken(Long userId, String email) {
        // 当前时间戳
        long timestamp = System.currentTimeMillis();
        // 加密时间戳
        String encryptedTimestamp = DigestUtils.md5DigestAsHex((timestamp + SALT).getBytes());
        // 生成token
        String rawToken = userId + "_" + email + "_" + timestamp;
        String tokenHash = DigestUtils.md5DigestAsHex(rawToken.getBytes());
        // 将加密后的时间戳作为前缀
        return encryptedTimestamp + ":" + timestamp + ":" + tokenHash;
    }
}
